This invention relates to a system and method for creating two and three-dimensional computer-assisted animation, and a simple and intuitive user interface for generating a series of animation images from a relatively few source drawings.
The field of animation concerns the creation of the illusion of motion by rapidly displaying a sequence of still images, with each image slightly changed from the previous image. In the early years of animation, the drawings were strictly made by hand, which is a tedious and time-consuming process given the large number of drawings required for even a short animation segment. More recently, with the advent of computer graphics technology, computers have been used in the animation process. Animators are often reluctant, however, to depend too heavily on computers for generating drawings because of the noticeable difference between hand drawn figures and objects and computer-generated figures and objects, which appear robotic rather than life-like.
More accepted in the animation field are computer systems permitting animators to create drawings on computer display devices using a mouse, drawing tablet or other input device rather than pen and paper. In these systems, computers are often used to assist an animator in creating an animation sequence by generating intermediate animation frames which are placed in between frames drawn by the animator. The frames drawn by the animator are referred to as key frames or poses. The computer generated intermediate frames are referred to as xe2x80x9cin-betweenxe2x80x9d frames and are used to transform an image from one key pose to another. The process of generating these in-between poses is often referred to as xe2x80x9ctweeningxe2x80x9d or xe2x80x9cin-betweening.xe2x80x9d Generation of the in-between poses is based on computer interpolation between the animator""s key frames. The animator specifies the number of in-between frames based on the complexity of the motion, and the computer generates the in-between frames to create a smooth transformation in the resulting animation sequence. The advantage of this technique is that it eliminates the laborious task of manually generating the individual in-between frames. Computer in-betweening for three-dimensional animation is discussed in U.S. Pat. No. 4,600,919 to Stern.
Prior art computer tweening methods are lacking in several respects. First, some prior art tweening systems use simple linear interpolation to generate intermediate poses between key frames. One problem with this approach is that it results in actions in objects that appear xe2x80x9crobotic.xe2x80x9d The problem can be minimized by increasing the number of key poses, but this requires more manually generated drawings and defeats the purpose of computer-assisted tweening. Another problem is that linear interpolation can cause distortion of objects experiencing rotational motion by shortening segments of the objects at certain angles of rotation. A third problem is that discontinuities in the speed of motion often result if i) the number of in-betweens in adjacent intervals is constant, but the distance between key poses is not, or ii) the distance between adjacent key positions is equal but the number of in-between poses in the interval are not. These problems are discussed more fully in D. H. U. Kochanek, R. Bartels, and K. S. Booth, xe2x80x9cA Computer System for Smooth Keyframe Animation,xe2x80x9d Rep. No. CS-82-42, University of Waterloo Computer Science Dept., 1982.
Several researchers have developed improvements to the simple linear interpolation technique as discussed in Kochanek et al. One such technique is referred to as the xe2x80x9cP-curve.xe2x80x9d In this process, the animator traces out a motion path along which an object is to move. In addition, to account for transformations in the object as it moves, the animator can specify a selection function to designate which picture of an object is used for any given frame along the P-curve. For example, the object can be a bouncing ball and the animator can specify that as the ball bounces, a drawing showing a compressed ball can be used.
These prior art techniques are cumbersome for animators to use, however, because they are complicated and do not provide a simple, easy-to-use user interface. There is thus a need for a computer-assisted animation construction system and method that permits an animator to create high quality animation simply and intuitively.
It is an object of the present invention to provide an improved system and method for computer-assisted generation of animation.
It is a further object of the present invention to provide an improved system and method for computer-assisted generation of animation that creates animated actions more life-like as compared with prior art systems.
It is a further object of the invention to provide an improved system and method for computer-assisted generation of animation such that the animator can simply and intuitively in real-time create a sequence of motion using a plurality of animator-created source poses of an object.
It is a further object of the invention to provide animators with direct artistic control of computer-assisted three-dimensional hand-drawn animation, equal to that which they have when hand-drawing two-dimensional animation in the traditional manner.
The system and method of the present invention improves on the known concept of using a computer to interpolate between sequential key poses of an animation sequence through the use of what are referred to herein as xe2x80x9csource poses.xe2x80x9d A source pose is an animator-created drawing of an object used in the present invention to create computer-generated poses of the object for animation. Unlike the prior art concept of key poses, a source pose may, but is not required to be, part of the animation.
The invention has application to both two and three-dimensional computer animation. In the system and method of the present invention, any number of source poses can in theory be specified by the animator, but practically 1-7 source poses would be used. These source poses do not necessarily correspond identically to the appearance of the animated object in any of the resulting animated poses. The source poses are used to construct composite poses used in animation sequences, referred to herein as xe2x80x9cconstructed poses.xe2x80x9d In each constructed pose, the object""s appearance is constructed from a weighted average of the source poses. A three-dimensional drawing space is provided using a computer-driven stereoscopic viewing system incorporating a computer input device such as a three-axis (6 degree of freedom) position sensor or drawing xe2x80x9cwandxe2x80x9d which utilizes sensors to track the movement and orientation of the wand in three-dimensional space. The position of the wand is represented by a cursor which is displayed within the three-dimensional drawing space.
A predetermined portion of the three-dimensional drawing space, referred to herein as the xe2x80x9cpose transformation space,xe2x80x9d is displayed in the viewing system. In one embodiment, the pose transformation space is a tetrahedron. In this case, four source poses are represented by the tetrahedron, one at each vertex. Each point within the tetrahedron represents a constructed pose defined by a unique combination of the four source poses. The drawing wand is moved to control the movement of the wand cursor within the tetrahedron in order to define the transformation of the animated object. The position of the wand cursor relative to each vertex of the tetrahedron controls the constructed pose at that point in time. The constructed poses are composed of weighted averages of the source poses. The constructed poses are viewed in real-time as the wand cursor moves within the pose transformation space enclosed by the tetrahedron, thus providing instantaneous feedback to the animator of the action being created or xe2x80x9cscripted.xe2x80x9d
In this manner, an animated object can be made to perform any action which, given the nature of the four source poses, can be specified by a progression of three-dimensional graph points determined by the path of the wand in the pose transformation space, referred to herein as a xe2x80x9ctransformation graph.xe2x80x9d In addition, the velocity of the pose transformation may be controlled by the rate of motion of the wand cursor in the pose transformation space. Alternatively, the velocity may be independently controlled by displaying a graphical representation of the relative rate of transformation as a function of position along the transformation graphxe2x80x94referred to herein as a xe2x80x9cvelocity profile graphxe2x80x9d or velocity profile for the transformationxe2x80x94to specify the instantaneous rate of transformation. This velocity profile permits an animator to modify the rate of transformation along the transformation graph using the input device.
The actions of different characters and objects and parts thereof may be defined using different transformation graphs, thus providing independent control over the action of the characters in a resulting animation sequence. If less than four source poses are to be used by the animator, a two-dimensional transformation space may be used (e.g, a triangle for three source poses).
A second aspect of the present invention is directed to further modifying constructed poses to provide for greater control over the form and action of computer-generated animated images undergoing some form of motion or transformation, which may be specified as a distortion or xe2x80x9cwarpxe2x80x9d of one or more line segments of a drawing. A point within the drawing is chosen as a reference point, referred to herein as a xe2x80x9cwarp handle,xe2x80x9d which will typically be on a line segment of a source pose, but need not be so located. A motion path relative to this reference pointxe2x80x94referred to herein as a xe2x80x9cwarp pathxe2x80x9dxe2x80x94is then drawn in the drawing space. The warp path defines a motion path in time relative to the reference warp handle, thus generating a set of relative x, y, and z displacements as a function of time. The line segment or segments to be modified by the warp path are then specified by any one of a number of methods, such as pointing and clicking with the drawing wand. In addition, a graph is drawn which defines the degree to which the successive points on the line segment or segments are displaced by the warp path. This graph is referred to herein as a xe2x80x9cwarp profile graph.xe2x80x9d The set of relative displacements is then applied to the designated segments, as modulated by the warp profile graph. This general technique, referred to herein as xe2x80x9csegment warping,xe2x80x9d may be modified to create various effects, such as the effect on an object of wind, of inertia, and to create the movement of a wave along the specified segments.
A third aspect of the present invention, referred to herein as xe2x80x9cspine warping,xe2x80x9d creates a number of related segment warps simultaneously. This is accomplished by defining, on each source pose, a single, straight line xe2x80x9cspinexe2x80x9d extending approximately through the centerline of a group of line segments to be warped. Any of the above-described warps may be applied to the spine and the resulting warp of the spine is appropriately transferred to each point on each of the affected line segments in the group. This provides the animator with a tool for very simply specifying complicated transformations to groups of line segments simultaneously.
A final aspect of the present invention relates to the automatic painting of closed loops (which may represent a surface of an object in a stereoscopic viewing system) drawn in two or three-dimensional space by xe2x80x9cflood-fillingxe2x80x9d the loop (each of the two-dimensional left and right eye projections of the loop in a stereoscopic system). Flood-filling is a technique known in the art of computer graphics. The system and method of the present invention uses a different technique for painting closed loops, referred to herein ad xe2x80x9cfill masking.xe2x80x9d In accordance with the present invention, the animator need only define the color with which the loop is to be filled in a single source pose and the color is maintained in each constructed pose regardless of the distortions the loop undergoes during motion. For each such constructed loop, a two-dimensional geometric shape, which is typically a rectangle, is generated automatically to encompass the loop by making it slightly larger than the loop based on the minimum and maximum x and y coordinates of the loop. The entire rectangle is generated in the fill color of the loop chosen by the animator. Next, the loop outline is transferred to the rectangle in its chosen line color or colors. A xe2x80x9cfillxe2x80x9d of the area bounded by the rectangle and the line forming the exterior of the loop is then performed, using the traditional flood-fill technique. This filled area is defined to be transparent so that when the resulting rectangle is displayed, the viewable image consists only of the loop in the appropriate filled color. This process is automatically repeated for each of the filled loops which comprise the complete character or object animation.